package alp.starcode.edms.framework.exception;

import alp.starcode.edms.framework.constant.ResultCode;
import alp.starcode.common.base.constant.model.ResultModel;
import alp.starcode.common.base.exception.BaseException;

/**
 * 文件异常
 *
 * @author liwang
 * @date 2021-6-1 09:28:02
 */
public class FileException extends BaseException {

    private static final ResultModel FILE_CODE = ResultCode.FILE_NOT_EXISTS_EXCEPTION;

    /**
     * 默认异常
     */
    public FileException() {
        super(FILE_CODE);
    }

    /**
     * 自定义状态码
     */
    public FileException(ResultModel resultModel) {
        super(resultModel);
    }

    /**
     * 返回状态码和自定义消息
     *
     * @param msg 消息提示
     */
    public FileException(String msg) {
        super(FILE_CODE.getCode(), msg);
    }
    /**
     * 返回状态码和自定义消息
     *
     * @param msg    消息提示
     * @param params 消息提示格式化参数
     */
    public FileException(String msg, Object... params) {
        super(FILE_CODE.getCode(), String.format(msg, params));
    }

    /**
     * 返回状态码和自定义消息
     *
     * @param resultModel 状态码
     * @param msg         消息提示
     * @param params      消息提示格式化参数
     */
    public FileException(ResultModel resultModel, String msg, Object... params) {
        super(resultModel.getCode(), String.format(msg, params));
    }
    /**
     * 传入异常
     *
     * @param e 异常信息
     */
    public FileException(Exception e) {
        super(FILE_CODE, e);
    }

    /**
     * 返回状态码和异常信息
     *
     * @param resultModel 状态码
     * @param e    异常信息
     */
    public FileException(ResultModel resultModel, Exception e) {
        super(resultModel, e);
    }

    /**
     * 返回状态码、自定义消息和异常信息
     *
     * @param resultModel 状态码
     * @param msg  消息提示
     * @param e    异常信息
     */
    public FileException(ResultModel resultModel, String msg, Exception e) {
        super(resultModel.getCode(), msg, e);
    }


}
